Vous souhaitez utiliser la fameuse bibliothèque sdl et elle ne vous paraît pas très claire d'utilisation ?
Parfait
cette page est la pour vous permettre de vous adapter à la SDL.
Quelques lien intéressant :
Partons du principe que vous l'avez installée via un gestionnaire de paquet, c'est toujours plus simple sous GNU/Linux
Il faut simplement mettre un macro signifiant que vous l'incluez dans le fichier .c:
#include <SDL2/SDL.h>
vous pouvez aussi utiliser
#include "SDL.h"
C'était tout ? oui ! pour le moment
ça va se corser, c'est ça qui motive disons…
Allez un petit code :
#include <SDL2/SDL.h>
int main(int argc, char *argv[]) {
SDL_bool done;
SDL_Window *window;
SDL_Event event; // On declare la structure d'event
SDL_Init(SDL_INIT_VIDEO); // Initialisation de la SDL2
window = SDL_CreateWindow( // Créer la fenêtre
"SDL première fenêtre pour comprendre",
SDL_WINDOWPOS_CENTERED,
SDL_WINDOWPOS_CENTERED,
640,
480,
SDL_WINDOW_OPENGL
);
// Check si la fenêtre à pu être crée
if (window == NULL) {
SDL_Log("La fenêtre n'a pas pu être créer %s", SDL_GetError());
SDL_Quit();
return 1;
}
done = SDL_FALSE;
while (!done) { // Boucle du programme
while (!done && SDL_PollEvent(&event)) {
switch (event.type) {
case (SDL_QUIT): { // Dans le cas de fermeture de fenêtre
done = SDL_TRUE;
break;
}
case (SDL_KEYDOWN): {
SDL_Log("L'utilisateur vient juste de presser la touche %s", SDL_GetKeyName(event.key.keysym.sym));
}
}
}
SDL_Delay(1); // Repose votre OS durant quelques millisecondes (très déconseillé de mettre > 100)
// Votre OS ne repose très bien avec 1 milliseconde pourquoi mettre plus ?
}
SDL_DestroyWindow(window); // On ferme la fenêtre visuellement et on la détruit en mémoire
SDL_Quit(); // Nettoyage des allocations mémoire
return 0;
}
Avec ce code vous devriez comprend comment faire une fenêtre et comment se passe les événements. Pour être plus clair je vais vous expliquer le concept : Chaque fois que vous passer dans SDL_PollEvent vous prenez l'event un tête de file des événements et vous allez réalisé des algorithme selon son type, sa valeur.
(en)la liste des events sur le wiki officiel
Un Event peut avoir comme type :
Si l'Event est de type key alors vous pouvez avoir :
Si l'Event est de type mouse alors vous pouvez avoir :

Si l'Event est de type button alors vours pouvez avoir :

Il y a beaucoup d'autre type d'Event voir la doc au-dessus
Nous utilisons SDL2 donc il faut faire :
gcc -o prog main.c `sdl2-config --cflags --libs`
Et voilà ! votre exécutable prêt à être exécuté via
./prog